Vehicle-mounted camera gimbal servo system and control method

ABSTRACT

Disclosed are a vehicle-mounted camera gimbal servo system and a control method. The vehicle-mounted camera gimbal servo system includes a camera tri-axial gimbal and a servo control apparatus. The camera tri-axial gimbal includes a pitch motor, a roll motor, a yaw motor, a roll arm ( 1 ), a pitch arm ( 4 ), a yaw arm ( 5 ), a gimbal top ( 7 ), a camera ( 11 ), a pitch-axis bearing ( 12 ), and a counterweight block ( 13 ); the pitch motor includes a pitch motor stator ( 2 ) and a pitch motor rotor ( 3 ); the yaw motor includes a yaw motor stator ( 6 ) and a yaw motor rotor ( 8 ); the roll motor includes a roll motor stator ( 9 ) and a roll motor rotor ( 10 ); the servo control apparatus includes an inertial measurement unit, a three-dimensional modeling control unit, an angular velocity loop control unit, and an angular displacement loop control unit.

The present disclosure claims priority to the Chinese Patent Application No. 201911152526.0, filed with the China National Intellectual Property Administration (CNIPA) on Nov. 22, 2019, and entitled “VEHICLE-MOUNTED CAMERA GIMBAL SERVO SYSTEM AND CONTROL METHOD”, which is incorporated herein by reference in its entirety.

TECHNICAL FIELD

The present disclosure relates to the technical field of vehicle-mounted cameras, and in particular, to a vehicle-mounted camera gimbal servo system and a control method.

BACKGROUND

The safety of driverless vehicles has been a hot issue in this field. As vision sensors, cameras provide a large amount of data information for driverless vehicles. However, due to factors such as an uneven road surface, steering, braking, and acceleration, a vehicle has various uncertain attitude changes during actual driving, which become disturbance factors for camera operation. In order to ensure the stability and continuity of video data, a tri-axial gimbal for a vehicle-mounted camera is developed, which is a three-axis rotatable mechanical structure. Unlike cameras in the fields of UAV aerial photography and handheld photography, a driverless camera is the key equipment to realize a driverless function. Therefore, it is important to improve the stability of the camera tri-axial gimbal for the safety of driverless vehicles.

SUMMARY

The present disclosure aims to overcome the deficiencies of the prior art and provide a vehicle-mounted camera gimbal servo system and a control method, to improve dynamic performance and anti-disturbance performance of real-time control of the camera tri-axial gimbal servo system and guarantee the safety of a driverless vehicle.

To achieve the above objective, the present disclosure provides the following solutions:

A vehicle-mounted camera gimbal servo system includes a camera tri-axial gimbal and a servo control apparatus, where

the camera tri-axial gimbal includes a pitch motor, a roll motor, a yaw motor, a roll arm (1), a pitch arm (4), a yaw arm (5), a gimbal top (7), a camera (11), a pitch-axis bearing (12), and a counterweight block (13); the pitch motor includes a pitch motor stator (2) and a pitch motor rotor (3); the yaw motor includes a yaw motor stator (6) and a yaw motor rotor (8); the roll motor includes a roll motor stator (9) and a roll motor rotor (10);

the camera (11) is fixedly connected to the pitch motor rotor (3) through the pitch arm (4), and the pitch motor rotor (3) is used for implementing movement in a pitch direction; the counterweight block (13) is connected on the pitch arm (4) in a threaded manner, to compensate for a gravitational unbalance moment in a roll direction caused by the self-weight of the pitch motor; the pitch arm (4) is constrained by the pitch-axis bearing (12); the pitch motor stator (2) is fixedly connected to the roll motor rotor (10) through the roll arm (1), and the roll motor rotor (10) is used for implementing movement in the roll direction; the roll motor stator (9) is fixedly connected to the yaw motor rotor (8) through the yaw arm (5); the yaw motor rotor (8) is used for implementing movement in a yaw direction; the yaw motor stator (6) is fixedly connected to the gimbal top (7), and the gimbal top (7) is fixed on a side of a fixing position of an inner rear view mirror on an inner top portion of a vehicle, so that the whole camera tri-axial gimbal is fixedly connected to the inner top portion of the vehicle; position sensors are disposed inside the pitch motor, the roll motor and the yaw motor;

the servo control apparatus includes:

an inertial measurement unit, mounted on the camera (11), configured to measure angular velocity information and angular displacement information of the camera (11), and generate precise angular displacement information by using a quaternion complementary filtering algorithm;

an actuator control unit, configured to generate IGBT switching sequence information of a drive bridge in three directions according to the position sensors in the pitch motor, the yaw motor, and the roll motor; and generate an IGBT duty cycle of the drive bridge in the three directions based on target voltage information, and implement open-loop control of motor speeds in the three directions of pitch, roll and yaw by using the drive bridge;

an angular velocity loop control unit, configured to establish an angular velocity loop controller model based on the actuator control unit, where after parameter optimization using a particle swarm algorithm, the angular velocity loop controller model generates target voltage information according to a combination of actual angular velocity information obtained by the inertial measurement unit and target angular velocity information, and sends the target voltage information to the actuator control unit; and

an angular displacement loop control unit, configured to establish an angular displacement loop controller model based on the optimized angular velocity loop controller model, where after parameter optimization using the particle swarm algorithm, the angular displacement loop controller model generates target angular velocity information according to target steering information set by a user and actual angular displacement information obtained by the inertial measurement unit, and sends the target angular velocity information to the angular velocity loop control unit, to implement double closed-loop control.

Optionally, the pitch arm (4) is provided with a thread, and the counterweight block (13) is provided with a threaded hole; the thread fits the threaded hole, to connect the pitch arm (4) and the counterweight block (13), and a position of the counterweight block (13) on the pitch arm (4) is adjustable.

Optionally, the inertial measurement unit includes: an accelerometer, configured to measure an angular displacement value of the camera;

a gyroscope, configured to measure an instantaneous angular velocity value of the camera; and

a complementary calculation unit, configured to perform quaternion complementary calculation on the angular velocity value measured by the gyroscope and the angular displacement value measured by the accelerometer, to obtain a precise instantaneous angle value.

Optionally, the pitch motor, the roll motor, and the yaw motor are all brushless DC motors.

A control method of the vehicle-mounted camera gimbal servo system includes the following steps:

S1: measuring angular velocity information and angular displacement information of the camera (11) by using the inertial measurement unit mounted on the camera (11), and generating precise angular displacement information by using a quaternion complementary filtering algorithm;

S2: establishing Simulink models in three directions of pitch, roll and yaw according to a mechanical structure of the camera tri-axial gimbal in combination with parameters of the pitch motor, the roll motor, and the yaw motor; generating IGBT switching sequence information of the drive bridge according to the position sensors in the motors; generating an IGBT duty cycle of the drive bridge based on target voltage information, and implementing open-loop control of motor speeds in the three directions of pitch, roll and yaw by using the drive bridge, to obtain an actuator control model, that is, a Simulink control model of the pitch motor, the roll motor, and the yaw motor;

S3: establishing an angular velocity loop controller model in Simulink based on the actuator control model, and optimizing parameters of the angular velocity loop controller model iteratively by using a particle swarm optimization algorithm, where a parameter-optimized angular velocity loop controller generates the target voltage information according to a combination of the actual angular velocity information obtained by the inertial measurement unit and target angular velocity information; and

S4: establishing an angular displacement loop controller model in Simulink based on the angular velocity loop controller model, and optimizing parameters of the angular displacement loop controller model by using a particle swarm optimization method, where the parameter-optimized angular displacement loop controller model generates the target angular velocity information according to target steering information set by a user and the actual angular displacement information obtained by the inertial measurement unit, and sends the target angular velocity information to the angular velocity loop controller model, thereby implementing double closed-loop control.

Optionally, step S1 specifically includes:

for the instantaneous angular velocity obtained by the gyroscope, obtaining quaternions of the instantaneous angular velocity by solving a quaternion update equation:

where the quaternion update equation is as follows:

$\begin{matrix} {\begin{pmatrix} {\overset{.}{q}}_{0} \\ {\overset{.}{q}}_{1} \\ {\overset{.}{q}}_{2} \\ {\overset{.}{q}}_{3} \end{pmatrix} = {\frac{1}{2}\begin{pmatrix} 0 & {- \omega_{x}} & {- \omega_{y}} & {- \omega_{z}} \\ \omega_{x} & 0 & \omega_{z} & {- \omega_{y}} \\ \omega_{y} & {- \omega_{z}} & 0 & \omega_{x} \\ \omega_{z} & \omega_{y} & {- \omega_{x}} & 0 \end{pmatrix}\begin{pmatrix} q_{0} \\ q_{1} \\ q_{2} \\ q_{3} \end{pmatrix}}} & (1) \end{matrix}$

where q₀, q₁, q₂, and q₃ represent the quaternions of the instantaneous angular velocity; {dot over (q)}₀, {dot over (q)}₁, {dot over (q)}₂, and {dot over (q)}₃ are derivatives of the quaternions; ω_(x), ω_(y), and ω_(z) are an x-axis component, a y-axis component, and a z-axis component of the instantaneous angular velocity, respectively;

determining, according to the quaternions of the instantaneous angular velocity, a quaternion matrix for transformation from a measured-object coordinate system b to a ground coordinate system R:

$\begin{matrix} {C_{b}^{R} = {\begin{pmatrix} T_{11} & T_{12} & T_{13} \\ T_{21} & T_{22} & T_{23} \\ T_{31} & T_{32} & T_{33} \end{pmatrix} = \begin{pmatrix} {1 - {2\left( {q_{2}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{1}q_{2}} - {q_{0}q_{3}}} \right)} & {2\left( {{q_{1}q_{3}} + {q_{0}q_{2}}} \right)} \\ {2\left( {{q_{1}q_{2}} + {q_{0}q_{3}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{2}q_{3}} - {q_{0}q_{1}}} \right)} \\ {2\left( {{q_{1}q_{3}} - {q_{0}q_{2}}} \right)} & {2\left( {{q_{2}q_{3}} + {q_{0}q_{1}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{2}^{2}} \right)}} \end{pmatrix}}} & (2) \end{matrix}$

where C_(b) ^(R) is the quaternion matrix; T₁₁, T₁₂, T₁₃, T₂₁, T₂₂, T₂₃, T₃₁, T₃₂, and T₃₃ are elements of the quaternion matrix;

determining, according to the quaternion matrix, an attitude angle as follows:

$\begin{matrix} \left\{ \begin{matrix} {\theta = {\arcsin\left( T_{32} \right)}} \\ {\gamma = {\arctan\left( {- \frac{T_{31}}{T_{33}}} \right)}} \\ {\psi = {\arctan\left( \frac{T_{12}}{T_{22}} \right)}} \end{matrix} \right. & (3) \end{matrix}$

where θ is a pitch angle, γ is a roll angle, and ψ is a yaw angle; and

processing, by using a low-pass filter, angle values obtained by the accelerometer; processing, by using a high-pass filter, the attitude angle calculated by the gyroscope; and calculating a weighted sum to obtain the precise angular displacement information;

$\begin{matrix} {\beta_{p} = {{\frac{dt}{{dt} + \tau} \times \beta_{p1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{p2}}}} & (4) \end{matrix}$ $\begin{matrix} {\beta_{r} = {{\frac{dt}{{dt} + \tau} \times \beta_{r1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{r2}}}} & (5) \end{matrix}$

where β_(p) is a pitch angle in the angular displacement information, β_(p1) is a pitch angle value obtained by the accelerometer, β_(p2)=θ is a pitch angle calculated by the gyroscope, β_(r) is a roll angle in the precise angular displacement information, β_(r1) is a roll angle value obtained by the accelerometer, β_(r2)=γ is a roll angle calculated by the gyroscope, and τ is a time constant.

Optionally, step S2 specifically includes the following sub-steps:

S201: establishing a three-dimensional model of the camera tri-axial gimbal in SolidWorks, configuring a material of the three-dimensional model, and calculating rotational inertia of load on three rotation shafts;

S202: building the actuator control model in Simulink, configuring motor parameters including interphase inductance, line resistance, number of pole pairs, and viscosity coefficients of the rotation shafts, and the rotational inertia of the load;

S203: building an encoder module in Simulink, and calculating an IGBT bridge switching sequence based on information of the position sensors;

S204: building a PWM module and a constant voltage power supply module in Simulink;

S205: inputting a driving voltage signal, that is, the target voltage information u outputted by the angular velocity loop control unit, into the whole model, where the input satisfies the following condition:

$\begin{matrix} \left\{ \begin{matrix} {u > {- U_{\max}}} \\ {u < U_{\max}} \end{matrix} \right. & (6) \end{matrix}$

to obtain the actuator control model, where U_(max) is a maximum voltage limit.

Optionally, step S3 includes:

S301: establishing an angular velocity loop controller model in Simulink, and saving the angular velocity loop controller model in .mdl format; setting a step target angular velocity in the angular velocity loop controller model in .mdl format, using parameters K′_(p) and K_(i) of the angular velocity loop controller as a model input, and using a feedback angular velocity of the step target angular velocity of the angular velocity loop controller model as a model output;

S302: establishing a PSO main function in Matlab, setting the number of particle dimensions to 2, the number of particles to 50, and the maximum number of iterations to 100, where in the particle velocity update formula (7), i denotes the i-th particle, k denotes the number of iterations, d denotes the number of dimensions, and x denotes a particle position; pbest and gbest denote an individual historical optimal position and a global optimal position, respectively; c₁ and c₂ are an individual learning rate and a group learning rate, respectively; r₁ and r₂ are [0, 1], w is an inertia weight, and w decreases linearly from 0.9 to 0.4 to improve search efficiency and reduce a probability of falling into a local optimum;

v _(id) ^(k) =w×v _(id) ^(k-1) +c ₁ ×r ₁×(pbest_(id)−x_(id) ^(k-1))+c ₂ ×r ₂×(gbest_(d) −x _(id) ^(k-1))   (7)

x _(id) ^(k) =x _(id) ^(k-1) +v _(id) ^(k-1)   (8)

where v_(id) ^(k) and v_(id) ^(k-1) denote particle velocities of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; x_(id) ^(k) and x_(id) ^(k-1) denote particle positions of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; pbest_(id) denotes an individual historical optimal position of the i-th particle in the d-th dimension during the (k−1)-th iteration, and gbest_(d) denotes a global optimal position in the d-th dimension during the (k−1)-th iteration;

S303: defining a fitness function of the angular velocity loop controller as a weighted sum of an overshoot and an absolute error value of the angular velocity loop controller, where an inertia weight of an overshoot item is 0.009, and an inertia weight of an absolute error value item is 1:

y _(fit) =w ₁×δ+∫w ₂ ×|e|×dt   (9)

where y_(fit) is a fitness function value of the angular velocity loop controller, w₁ is the weight of the overshoot item of the angular velocity loop controller, w₂ is the weight of the absolute error value item of the angular velocity loop controller, δ is the overshoot of the angular velocity loop controller, and e is an error of the angular velocity loop controller;

S304: calling the angular displacement loop controller model in .mdl format based on a sim( ) command in each iteration, to obtain a feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; calculating a fitness function value of each particle by using formula (9) according to the feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; updating a particle velocity by using formula (7), and updating a particle position by using formula (8), where the particle position and velocity need to satisfy constraint conditions defined by formula (10) and formula (11):

$\begin{matrix} \left\{ \begin{matrix} {x_{id}^{k} > {- x_{\max}}} \\ {x_{id}^{k} < x_{\max}} \end{matrix} \right. & (10) \end{matrix}$ $\begin{matrix} \left\{ \begin{matrix} {v_{id}^{k} > {- v_{\max}}} \\ {v_{id}^{k} < v_{\max}} \end{matrix} \right. & (11) \end{matrix}$

where x_(max) is a maximum position limit, and v_(max) is a maximum velocity limit; and

performing iteration continuously till the maximum number of iterations, and obtaining a global optimal position at the maximum number of iterations as an optimal solution ofK′_(p) and Ki.

Optionally, step S4 specifically includes:

S401: establishing an extended state observer (ESO), where a basic process of a second-order ESO discrete system is as follows:

$\begin{matrix} {e_{0} = {{z_{1}(k)} - {y(k)}}} & (12) \end{matrix}$ $\begin{matrix} {{z_{1}\left( {k + 1} \right)} = {{z_{1}(k)} + {{ts} \times \left( {{z_{2}(k)} - {\beta_{01} \times e_{0}}} \right)}}} & (13) \end{matrix}$ $\begin{matrix} {{z_{2}\left( {k + 1} \right)} = {{z_{2}(k)} + {{tx} \times \left( {{z_{3}(k)} - {\beta_{02} \times {{fal}\left( {e_{0},0.5,\delta_{0}} \right)}} + {b \times u}} \right)}}} & (14) \end{matrix}$ $\begin{matrix} {{z_{3}\left( {k + 1} \right)} = {{z_{3}(k)} - {{ts} \times \beta_{03} \times {{fal}\left( {e_{0},0.25,\delta_{0}} \right)}}}} & (15) \end{matrix}$ $\begin{matrix} {{{fal}\left( {e_{0},\alpha,\delta_{0}} \right)} = \left\{ {\begin{matrix} {{{❘e_{0}❘}^{\alpha} \times {{sign}\left( e_{0} \right)}},{{❘e_{0}❘} > \delta_{0}}} \\ {\frac{e_{0}}{\delta_{0}^{1 - \alpha}},{{❘e_{0}❘} \leq \delta_{0}},} \end{matrix}\left( {\delta_{0} > 0} \right)} \right.} & (16) \end{matrix}$

where e₀ is an output error; k denotes moment k; y(k) is an output of the whole system at moment k; z₁(k), z₂(k), and z₃(k) are observed state vectors at moment k; z₁(k+1) , z₂(k+1), and z₃(k+1) are updated observed state vectors at moment k+1; is is a step size; β₀₁, β₀₂, and β₀₃ are a first error coefficient, a second error coefficient, and a third error coefficient of the ESO, respectively; α and δ₀ are an exponential coefficient and a threshold coefficient of a fal function, respectively; b is a control volume coefficient; β₀₁, β₀₂, β₀₃, α, and δ are coefficients determined empirically, and b is a parameter to be optimized and determined by an optimization method; fal(⋅) is the fal function; and u is a control volume outputted by the angular displacement loop controller;

S402: establishing a tracking differentiator (TD), where the discrete system TD established based on fhan is as follows:

fh=fhan(x ₁(k)−v(k),x ₂(k),r ₀ ,h ₀)   (17)

x ₁(k+1)=x ₁(k)+ts×x ₂(k)   (18)

x ₂(k+1)=x ₂(k)+ts×fh   (19)

where v(k) is a control target at moment k; x₁(k) and x₂(k) are tracking control targets at moment k; x₁(k+1) and x₂(k+1) are updated tracking control targets at moment k+1; is is a step size; fhan(⋅) is a fhan function, and an expression of fhan is shown in formula (28):

the expression of fhan is shown as follows:

$\begin{matrix} {d = {r_{0} \times h_{0}^{2}}} & (20) \end{matrix}$ $\begin{matrix} {a_{0} = {h_{0} \times {x_{2}(k)}}} & (21) \end{matrix}$ $\begin{matrix} {y = {{x_{1}(k)} - {v(k)} + a_{0}}} & (22) \end{matrix}$ $\begin{matrix} {a_{1} = \sqrt{d \times \left( \left. {d + {8 \times}} \middle| {y(k)} \right| \right)}} & (23) \end{matrix}$ $\begin{matrix} {a_{2} = {a_{0} + {{{sign}\left( {y(k)} \right)} \times \frac{\left( {a_{1} - d} \right)}{2}}}} & (24) \end{matrix}$ $\begin{matrix} {s_{y} = \frac{{{sign}\left( {{y(k)} + d} \right)} - {{sign}\left( {{y(k)} - d} \right)}}{2}} & (25) \end{matrix}$ $\begin{matrix} {a = {{\left( {a_{0} + {y(k)} - a_{2}} \right) \times s_{y}} + a_{2}}} & (26) \end{matrix}$ $\begin{matrix} {s_{a} = \frac{{{sign}\left( {a + d} \right)} - {{sign}\left( {a - d} \right)}}{2}} & (27) \end{matrix}$ $\begin{matrix} {{fhan} = {{{- r_{0}} \times \left\lbrack {\frac{a}{d} - {{sign}(a)}} \right\rbrack \times s_{a}} - {r_{0} \times {{sign}(a)}}}} & (28) \end{matrix}$

where x is an inputted state vector; r₀ and h₀ are a first set parameter and a second set parameter of the fhan function; d, a₀, a₁, a₂, s_(y), a, and s_(a) are a first intermediate parameter, a second intermediate parameter, a third intermediate parameter, a fourth intermediate parameter, a fifth intermediate parameter, a sixth intermediate parameter, and a seventh intermediate parameter of the fhan function, respectively; r₀ and h₀ are coefficients determined empirically;

S403: establishing a nonlinear state error feedback (NLSEF) controller, where a discrete process of the nonlinear state error feedback controller is as follows:

$\begin{matrix} {u_{0} = {{K_{p} \times fa{l\left( {e_{1},a_{1},\delta_{0}} \right)}} + {K_{d} \times fa{l\left( {e_{2},a_{2},\delta_{0}} \right)}}}} & (29) \end{matrix}$ $\begin{matrix} {u = {u_{0} - \frac{z_{3}\left( {k + 1} \right)}{b_{0}}}} & (30) \end{matrix}$

where u₀ is an intermediate parameter of the angular displacement loop controller; u is a control volume outputted by the angular displacement loop controller; e₁ and e₂ are two observed state vector errors, where e₁=x₁(k+1)−z₁(k+1) and e₂=x₂(k+1)−z₂(k+1) ; a₁, and a₂ are two specific values of the exponential coefficient α of the fal function; a₁, a₂, δ, and b₀ are coefficients determined empirically; K_(p) and K_(d) are a proportion coefficient and a differential coefficient, respectively, and need to be optimized;

S404: saving, in .mdl format, a Simulink model of the angular displacement loop controller established through steps 401 to 403, to obtain an angular displacement loop controller model in .mdl format, where an input of the angular displacement loop controller model in .mdl format is three optimization parameters K_(p), K_(d), and b, and an output of the model is a feedback angular displacement of the step target angular displacement;

S405: establishing a PSO main function in Matlab, setting the number of particle dimensions to 2, the number of particles to 50, and the maximum number of iterations to 100, where an inertia weight of a particle velocity update formula decreases linearly from 0.9 to 0.4 to improve search efficiency and reduce a probability of falling into a local optimum;

S406: defining a fitness function of the angular displacement loop controller as a weighted sum of an overshoot of the angular displacement loop controller and an absolute error value of the angular displacement loop controller, where an inertia weight of an overshoot item is 0.009, and an inertia weight of an absolute error value item is 1:

y′ _(fit) =w′ ₁ ×δ′+∫w′ ₂ ×|e′|×dt   (31)

where y′_(fit) is a fitness function value of the angular displacement loop controller, w′₁ is the weight of the overshoot item of the angular velocity loop controller, w′₂ is the weight of the absolute error value item of the angular velocity loop controller, δ′ is the overshoot of the angular velocity loop controller, and e′ is an error of the angular velocity loop controller;

S407: calling the Simulink model based on a sim( ) command in each iteration, to calculate a fitness function value, update a particle velocity, and update a particle position; and performing iteration continuously till the maximum number of iterations, to obtain optimal solutions of K_(p), K_(d), and b.

The present disclosure has the following beneficial effects: the present disclosure constructs a double closed-loop control framework with an angular displacement loop as an outer loop and an angular velocity loop as an inner loop. Based on nonlinear state error feedback (NLSEF), control volumes are combined nonlinearly to improve the dynamic performance of the servo system; based on an extended state observer (ESO), system disturbance is observed in real time and compensated, thereby improving the anti-disturbance capability of the servo system. Parameters of an angular displacement loop controller are adjusted based on a method of combining experience with optimization, and a weighted sum of an overshoot δ and an error absolute value |e| is used as a fitness function of particle swarm optimization. The method reduces the complexity of parameter adjustment of the angular displacement loop controller and ensures that the servo system achieves a corresponding control effect.

BRIEF DESCRIPTION OF THE DRAWINGS

To describe the technical solutions in the embodiments of the present disclosure or in the prior art more clearly, the following briefly describes the accompanying drawings required for describing the embodiments. Apparently, the accompanying drawings in the following description show merely some embodiments of the present disclosure, and a person of ordinary skill in the art may still derive other drawings from these accompanying drawings without creative efforts.

FIG. 1 is a schematic structural diagram of a camera tri-axial gimbal;

FIG. 2 is a schematic diagram showing the principle of a servo control apparatus;

FIG. 3 is a flowchart of an implementation of a control method of a vehicle-mounted camera gimbal servo system according to the present disclosure;

FIG. 4 is a structural diagram of an angular displacement loop controller according to the present disclosure; and

FIG. 5 is a flowchart of another implementation of a control method of a vehicle-mounted camera gimbal servo system according to the present disclosure.

In the drawings, 1-roll arm, 2-pitch motor stator, 3-pitch motor rotor, 4-pitch arm, 5-yaw arm, 6-yaw motor stator, 7-gimbal top, 8-yaw motor rotor, 9-roll motor stator, 10-roll motor rotor, 11-camera, 12-pitch-axis bearing, and 13-counterweight block.

DETAILED DESCRIPTION

The technical solutions of the embodiments of the present disclosure are clearly and completely described below with reference to the accompanying drawings. Apparently, the described embodiments are merely some rather than all of the embodiments of the present disclosure. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present disclosure without creative efforts shall fall within the protection scope of the present disclosure.

An objective of the present disclosure is to overcome the deficiencies of the prior art and provide a vehicle-mounted camera gimbal servo system and a control method, to improve dynamic performance and anti-disturbance performance of real-time control of the camera tri-axial gimbal servo system and guarantee the safety of a driverless vehicle.

To make the objectives, features, and advantages of the present disclosure more obvious and comprehensive, the following further describes in detail the present disclosure with reference to the accompanying drawings and specific implementations.

As shown in FIG. 1 and FIG. 2, a vehicle-mounted camera gimbal servo system includes a camera tri-axial gimbal and a servo control apparatus.

The camera tri-axial gimbal includes a pitch motor, a roll motor, a yaw motor, a roll arm 1, a pitch arm 4, a yaw arm 5, a gimbal top 7, a camera 11, a pitch-axis bearing 12, and a counterweight block 13; the pitch motor includes a pitch motor stator 2 and a pitch motor rotor 3; the yaw motor includes a yaw motor stator 6 and a yaw motor rotor 8; the roll motor includes a roll motor stator 9 and a roll motor rotor 10.

The camera 11 is fixedly connected to the pitch motor rotor 3 through the pitch arm 4, and the pitch motor rotor 3 is used for implementing movement in a pitch direction; the counterweight block 13 is connected on the pitch arm 4 in a threaded manner, to compensate for a gravitational unbalance moment in a roll direction caused by the self-weight of the pitch motor; the pitch arm 4 is constrained by the pitch-axis bearing 12; the pitch motor stator 2 is fixedly connected to the roll motor rotor 10 through the roll arm 1, and the roll motor rotor 10 is used for implementing movement in the roll direction; the roll motor stator 9 is fixedly connected to the yaw motor rotor 8 through the yaw arm 5; the yaw motor rotor 8 is used for implementing movement in a yaw direction; the yaw motor stator 6 is fixedly connected to the gimbal top 7, and the gimbal top 7 is fixed near a rear view mirror on an inner top portion of a vehicle, so that the whole camera tri-axial gimbal is fixedly connected near the rear view mirror on the inner top portion of the vehicle; position sensors are disposed inside the pitch motor, the roll motor and the yaw motor.

The servo control apparatus includes:

an inertial measurement unit, mounted on the camera 11, configured to measure angular velocity information and angular displacement information of the camera 11, and generate precise angular displacement information by using a quaternion complementary filtering algorithm;

an actuator control unit, configured to generate IGBT switching sequence information of adrive bridge in three directions according to the position sensors in the pitch motor, the yaw motor, and the roll motor; and generate an IGBT duty cycle of the drive bridge based on target voltage information in the three directions, and implement open-loop control of motor speeds in the three directions of pitch, roll and yaw by using the drive bridge;

an angular velocity loop control unit, configured to establish an angular velocity loop controller model based on the actuator control unit, where after parameter optimization using a particle swarm algorithm, the angular velocity loop controller model generates duty cycle information of a motor driving voltage PWM signal according to a combination of the actual angular velocity information obtained by the inertial measurement unit and target angular velocity information, and transmits the duty cycle information to the drive bridge of the actuator control unit; and

an angular displacement loop control unit, configured to establish an angular displacement loop controller model based on the optimized angular velocity loop controller model, where after parameter optimization using the particle swarm algorithm, the angular displacement loop controller model generates a target angular velocity according to target steering information set by a user and the actual angular displacement information obtained by the inertial measurement unit, and sends the target angular velocity to the angular velocity loop controller model, to implement double closed-loop control.

In the embodiment of the present disclosure, the actuator control unit mainly includes an encoder and a drive bridge. The encoder is configured to generate the IGBT switching sequence information of the drive bridge in the three directions according to the position sensors in the pitch motor, the yaw motor, and the roll motor, and generate the IGBT duty cycle of the drive bridge based on the target voltage information in the three directions; the drive bridge is configured to implement open-loop control of motor speeds in the three directions of pitch, roll and yaw.

In the embodiment of the present disclosure, the pitch arm 4 is provided with a thread, and the counterweight block 13 is provided with a threaded hole. The thread fits the threaded hole, to connect the pitch arm 4 and the counterweight block 13, and a position of the counterweight block 13 on the pitch arm 4 is adjustable. The inertial measurement unit includes: an accelerometer, configured to measure an angular displacement value of the camera; a gyroscope, configured to measure an instantaneous angular velocity value of the camera; a complementary calculation unit, configured to perform quaternion complementary calculation on the angular velocity value measured by the gyroscope and the angular displacement value measured by the accelerometer, to obtain a precise instantaneous angle value. The pitch motor, the roll motor, and the yaw motor are all brushless DC motors. The three directions of pitch, roll and yaw are defined as follows: a pitch axis is located in a horizontal plane, and is perpendicular to a forward direction of the vehicle; a roll axis is located in the horizontal plane, and points to the forward direction of the vehicle; and a yaw axis is perpendicular to a horizontal plane of a geodetic coordinate system and points upward. The structures are connected in the following manner: the pitch motor stator 2, the roll motor stator 9, and the yaw motor stator 6 are each fixedly connected to a fixed connection structure by using 4 screws. The pitch motor rotor 3, the roll motor rotor 10, and the yaw motor rotor 8 are each fixedly connected to a fixed connection structure by using 4 screws. The gimbal top 7 is fixedly connected to the inner top portion of the vehicle by using 4 screws. Harnesses of the motors are led out in the following manner: the harness of the pitch motor is led out through a hole on the roll arm 1, the harness of the roll motor is led out through a hole on the yaw arm 5, and the harness of the yaw motor is led out through a hole on the gimbal top 7.

The present disclosure further provides a control method of the vehicle-mounted camera gimbal servo system.

As a specific implementation, as shown in FIG. 3, the control method of the vehicle-mounted camera gimbal servo system includes the following steps:

S1: measure angular velocity information and angular displacement information of the camera 11 by using the inertial measurement unit mounted on the camera 11, and generate precise angular displacement information by using a quaternion complementary filtering algorithm.

S2. establish Simulink models in three directions of pitch, roll and yaw according to a mechanical structure of the camera tri-axial gimbal in combination with parameters of the pitch motor, the roll motor, and the yaw motor; generate IGBT switching sequence information of the drive bridge according to the position sensors in the motors; generate an IGBT duty cycle of the drive bridge based on target voltage information, and implement open-loop control of motor speeds in the three directions of pitch, roll and yaw by using the drive bridge, to obtain an actuator control model, that is, a Simulink control model of the pitch motor, the roll motor, and the yaw motor.

S3: establish an angular velocity loop controller model in Simulink based on the actuator control model, and optimize parameters of the angular velocity loop controller model iteratively by using a particle swarm optimization algorithm, where a parameter-optimized angular velocity loop controller generates the target voltage information according to a combination of the actual angular velocity information obtained by the inertial measurement unit and target angular velocity information.

S4: establish an angular displacement loop controller model in Simulink based on the angular velocity loop controller model, and optimize parameters of the angular displacement loop controller model by using a particle swarm optimization method, where the parameter-optimized angular displacement loop controller model generates the target angular velocity information according to target steering information set by a user and the actual angular displacement information obtained by the inertial measurement unit, and sends the target angular velocity information to the angular velocity loop controller model, thereby implementing double closed-loop control.

Step S1 specifically includes the following process:

for an instantaneous angular velocity obtained by the gyroscope, obtaining quaternions of the instantaneous angular velocity by solving a quaternion update equation:

where the quaternion update equation is as follows:

$\begin{matrix} {\begin{pmatrix} {\overset{.}{q}}_{0} \\ {\overset{.}{q}}_{1} \\ {\overset{.}{q}}_{2} \\ {\overset{.}{q}}_{3} \end{pmatrix} = {\frac{1}{2}\begin{pmatrix} 0 & {- \omega_{x}} & {- \omega_{y}} & {- \omega_{z}} \\ \omega_{x} & 0 & \omega_{z} & {- \omega_{y}} \\ \omega_{y} & {- \omega_{z}} & 0 & \omega_{x} \\ \omega_{z} & \omega_{y} & {- \omega_{x}} & 0 \end{pmatrix}\begin{pmatrix} q_{0} \\ q_{1} \\ q_{2} \\ q_{3} \end{pmatrix}}} & (1) \end{matrix}$

where q₀, q₁, q₂, and q₃ represent the quaternions of the instantaneous angular velocity; {dot over (q)}₀, {dot over (q)}₁, {dot over (q)}₂, and {dot over (q)}₃ are derivatives of the quaternions; ω_(x), ω_(y), and ω_(z) are an x-axis component, a y-axis component, and a z-axis component of the instantaneous angular velocity, respectively;

determining, according to the quaternions of the instantaneous angular velocity, a quaternion matrix for transformation from a measured-object coordinate system b to a ground coordinate system R:

$\begin{matrix} {C_{b}^{R} = {\begin{pmatrix} T_{11} & T_{12} & T_{13} \\ T_{21} & T_{22} & T_{23} \\ T_{31} & T_{32} & T_{33} \end{pmatrix} = \begin{pmatrix} {1 - {2\left( {q_{2}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{1}q_{2}} - {q_{0}q_{3}}} \right)} & {2\left( {{q_{1}q_{3}} + {q_{0}q_{2}}} \right)} \\ {2\left( {{q_{1}q_{2}} + {q_{0}q_{3}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{2}q_{3}} - {q_{0}q_{1}}} \right)} \\ {2\left( {{q_{1}q_{3}} - {q_{0}q_{2}}} \right)} & {2\left( {{q_{2}q_{3}} + {q_{0}q_{1}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{2}^{2}} \right)}} \end{pmatrix}}} & (2) \end{matrix}$

where C_(b) ^(R) is the quaternion matrix; T₁₁, T₁₂, T₁₃, T₂₁, T₂₂, T₂₃, T₃₁, T₃₂ and T₃₃ are elements of the quaternion matrix;

determining, according to the quaternion matrix, an attitude angle as follows:

$\begin{matrix} \left\{ \begin{matrix} {\theta = {\arcsin\left( T_{32} \right)}} \\ {\gamma = {\arctan\left( {- \frac{T_{31}}{T_{33}}} \right)}} \\ {\psi = {\arctan\left( \frac{T_{12}}{T_{22}} \right)}} \end{matrix} \right. & (3) \end{matrix}$

where θ is a pitch angle, γ is a roll angle, and ψ is a yaw angle; and

processing, by using a low-pass filter, angle values obtained by the accelerometer; processing, by using a high-pass filter, the attitude angle calculated by the gyroscope; and calculating a weighted sum to obtain the precise angular displacement information;

$\begin{matrix} {\beta_{p} = {{\frac{dt}{{dt} + \tau} \times \beta_{p1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{p2}}}} & (4) \end{matrix}$ $\begin{matrix} {\beta_{r} = {{\frac{dt}{{dt} + \tau} \times \beta_{r1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{r2}}}} & (5) \end{matrix}$

where β_(p) is a pitch angle in the angular displacement information, β_(p1) is a pitch angle value obtained by the accelerometer, β_(p2)=θ is a pitch angle calculated by the gyroscope, β_(r) is a roll angle in the precise angular displacement information, β_(r1) is a roll angle value obtained by the accelerometer, β_(r2)=γ is a roll angle calculated by the gyroscope, and τ is a time constant.

Step S2 includes the following sub-steps:

S201: establish a three-dimensional model of the camera tri-axial gimbal in SolidWorks, configure a material of the three-dimensional model, and calculate rotational inertia of load on three rotation shafts.

S202: build the actuator control model in Simulink, configure motor parameters including interphase inductance, line resistance, number of pole pairs, and viscosity coefficients of the rotation shafts, and the rotational inertia of the load.

S203: build an encoder module in Simulink, and calculate an IGBT bridge switching sequence based on information of the position sensors.

S204: build a PWM module and a constant voltage power supply module in Simulink.

S205: input a driving voltage signal, that is, the target voltage information u outputted by the angular velocity loop control unit, into the whole model, where the input satisfies the following condition:

$\begin{matrix} \left\{ \begin{matrix} {u > {- U_{\max}}} \\ {u < U_{\max}} \end{matrix} \right. & (6) \end{matrix}$

In this way, the actuator control model is obtained, where is a maximum voltage limit.

Step S3 includes the following process:

S301: establish an angular velocity loop controller model in Simulink, and save the angular velocity loop controller model in .mdl format; set a step target angular velocity in the angular velocity loop controller model in .mdl format, use parameters K′_(op) and Ki of the angular velocity loop controller as a model input, and use a feedback angular velocity of the step target angular velocity of the angular velocity loop controller model as a model output.

S302: establish a PSO main function in Matlab, set the number of particle dimensions to 2, the number of particles to 50, and the maximum number of iterations to 100, where in the particle velocity update formula (7), i denotes the i-th particle, k denotes the number of iterations, d denotes the number of dimensions, and x denotes a particle position; pbest and gbest denote an individual historical optimal position and a global optimal position, respectively; c₁ and c₂ are an individual learning rate and a group learning rate, respectively; r₁ and r₂ are [0, 1], w is an inertia weight, and w decreases linearly from 0.9 to 0.4 to improve search efficiency and reduce a probability of falling into a local optimum.

v _(id) ^(k) =w×v _(id) ^(k-1) +c ₁ ×r ₁×(pbest_(id) −x _(id) ^(k-1))+c ₂ ×r ₂×(gbest_(d) −x _(id) ^(k-1))   (7)

x _(id) ^(k) =x _(id) ^(k-1) +v _(id) ^(k-1)   (8)

where v_(id) ^(k) and v_(id) ^(k-1) denote particle velocities of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; x_(id) ^(k) and x_(id) ^(k-1) denote particle positions of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; pbest, denotes an individual historical optimal position of the i-th particle in the d-th dimension during the (k−1)-th iteration, and gbest_(d) denotes a global optimal position in the d-th dimension during the (k−1)-th iteration.

S303: define a fitness function of the angular velocity loop controller as a weighted sum of an overshoot and an absolute error value of the angular velocity loop controller, where an inertia weight of an overshoot item is 0.009, and an inertia weight of an absolute error value item is 1:

y _(fit) =w ₁×δ+∫w ₂ ×|e|×dt   (9)

where y_(fit) is a fitness function value of the angular velocity loop controller, w₁ is the weight of the overshoot item of the angular velocity loop controller, w₂ is the weight of the absolute error value item of the angular velocity loop controller, δ is the overshoot of the angular velocity loop controller, and e is an error of the angular velocity loop controller.

S304: call the angular displacement loop controller model in .mdl format based on a sim( ) command in each iteration, to obtain a feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; calculate a fitness function value of each particle by using formula (9) according to the feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; update a particle velocity by using formula (7), and update a particle position by using formula (8), where the particle position and velocity need to satisfy constraint conditions defined by formula (10) and formula (11):

$\begin{matrix} \left\{ \begin{matrix} {x_{id}^{k} > {- x_{\max}}} \\ {x_{id}^{k} < x_{\max}} \end{matrix} \right. & (10) \end{matrix}$ $\begin{matrix} \left\{ \begin{matrix} {v_{id}^{k} > {- v_{\max}}} \\ {v_{id}^{k} < v_{\max}} \end{matrix} \right. & (11) \end{matrix}$

where x_(max) is a maximum position limit, and v_(max) is a maximum velocity limit; and

perform iteration continuously till the maximum number of iterations, and obtain a global optimal position at the maximum number of iterations as an optimal solution of K′_(p) and K_(i).

As shown in FIG. 4, the angular displacement loop controller of the present disclosure includes: an extended state observer (ESO), a tracking differentiator (TD), and a nonlinear state error feedback (NLSEF) controller. Step S4 includes the following processes:

S401: establish an extended state observer (ESO), where a basic process of a second-order ESO discrete system is as follows:

$\begin{matrix} {e_{0} = {{z_{1}(k)} - {y(k)}}} & (12) \end{matrix}$ $\begin{matrix} {{z_{1}\left( {k + 1} \right)} = {{z_{1}(k)} + {{ts} \times \left( {{z_{2}(k)} - {\beta_{01} \times e_{0}}} \right)}}} & (13) \end{matrix}$ $\begin{matrix} {{z_{2}\left( {k + 1} \right)} = {{z_{2}(k)} + {{ts} \times \left( {{z_{3}(k)} - {\beta_{02} \times {{fal}\left( {e_{0},0.5,\delta_{0}} \right)}} + {b \times u}} \right)}}} & (14) \end{matrix}$ $\begin{matrix} {{z_{3}\left( {k + 1} \right)} = {{z_{3}(k)} - {{ts} \times \beta_{0} \times {{fal}\left( {e_{0},0.25,\delta_{0}} \right)}}}} & (15) \end{matrix}$ $\begin{matrix} {{{fal}\left( {e_{0},\alpha,\delta_{0}} \right)} = \left\{ {\begin{matrix} {{{❘e_{0}❘}^{\alpha} \times {{sign}\left( e_{0} \right)}},{{❘e_{0}❘} > \delta_{0}}} \\ {\frac{e_{0}}{\delta_{0}^{1 - \alpha}},{{❘e_{0}❘} \leq \delta_{0}},} \end{matrix}\left( {\delta_{0} > 0} \right)} \right.} & (16) \end{matrix}$

where e₀ is an output error; k denotes moment k; y(k) is an output of the whole system at moment k; z₁(k), z₂(k), and z₃(k) are observed state vectors at moment k; z₁(k+1), z₂(k+1), and z₃(k+1) are updated observed state vectors at moment k+1; ts is a step size; β₀₁, β₀₂, β₀₂, α and δ are coefficients determined empirically, α is 0.5, and b is a parameter to be optimized; fal(⋅) is a fal function; u is a control volume outputted by the angular displacement loop controller.

S402: establish a tracking differentiator (TD), where the discrete system TD established based on fhan is as follows:

fh=fhan(x ₁(k)−v(k),x ₂(k),r ₀ ,h ₀)   (17)

x ₁(k+1)=x ₁(k)+ts×x ₂(k)   (18)

x ₂(k+1)=x ₂(k)+ts×fh   (19)

where v(k) is a control target at moment k; x₁(k) and x₂(k) are tracking control targets at moment k; x₁(k+1) and x₂(k+1) are updated tracking control targets at moment k+1; is is a step size; fhan(⋅) is a fhan function, and an expression of fhan is shown in formula (28):

The expression of fhan is shown as follows:

$\begin{matrix} {d = {r_{0} \times h_{0}^{2}}} & (20) \end{matrix}$ $\begin{matrix} {a_{0} = {h_{0} \times x_{2}}} & (21) \end{matrix}$ $\begin{matrix} {y = {{x_{1}(k)} - {v(k)} + a_{0}}} & (22) \end{matrix}$ $\begin{matrix} {a_{1} = \sqrt{d \times \left( {d + {8 \times {❘{y(k)}❘}}} \right)}} & (23) \end{matrix}$ $\begin{matrix} {a_{2} = {a_{0} + {{{sign}\left( {y(k)} \right)} \times \frac{\left( {a_{1} - d} \right)}{2}}}} & (24) \end{matrix}$ $\begin{matrix} {s_{y} = \frac{{{sign}\left( {{y(k)} + d} \right)} - {{sign}\left( {{y(k)} - d} \right)}}{2}} & (25) \end{matrix}$ $\begin{matrix} {a = {{\left( {a_{0} + {y(k)} - a_{2}} \right) \times s_{y}} + a_{2}}} & (26) \end{matrix}$ $\begin{matrix} {s_{a} = \frac{{{sign}\left( {a + d} \right)} - {{sign}\left( {a - d} \right)}}{2}} & (27) \end{matrix}$ $\begin{matrix} {{fhan} = {{{- r_{0}} \times \left\lbrack {\frac{a}{d} - {{sign}(a)}} \right\rbrack \times s_{a}} - {r_{0} \times {{sign}(a)}}}} & (28) \end{matrix}$

where x is an inputted state vector; r₀ and h₀ are coefficients determined empirically.

S403: establish a nonlinear state error feedback (NLSEF) controller, where a discrete process of the nonlinear state error feedback controller is as follows:

$\begin{matrix} {u_{0} = {{K_{p} \times {{fal}\left( {e_{1},\alpha_{1},\delta_{0}} \right)}} + {K_{d} \times {{fal}\left( {e_{2},a_{2},\delta_{0}} \right)}}}} & (29) \end{matrix}$ $\begin{matrix} {u = {u_{0} - \frac{z_{3}\left( {k + 1} \right)}{b_{0}}}} & (30) \end{matrix}$

where u is a control volume outputted by the angular displacement loop controller; e₁ and e₂ are observed state vector errors; e₁=x₁(k+1)−z₁(k+1), e₂=x₂(k+1)−z₂(k+1), a₁, a₂, δ, and b₀ are coefficients determined empirically; K_(p) and K_(d) are a proportion coefficient and a differential coefficient, respectively, and need to be optimized.

S404: save, in .mdl format, a Simulink model of the angular displacement loop controller established through steps 401 to 403, to obtain an angular displacement loop controller model in .mdl format, where an input of the angular displacement loop controller model in .mdl format is three optimization parameters: K_(p), K_(d), and b, and an output of the model is a feedback angular displacement of the step target angular displacement.

S405: establish a PSO main function in Matlab, set the number of particle dimensions to 2, the number of particles to 50, and the maximum number of iterations to 100, where an inertia weight of a particle velocity update formula decreases linearly from 0.9 to 0.4 to improve search efficiency and reduce a probability of falling into a local optimum.

S406: define a fitness function of the angular displacement loop controller as a weighted sum of an overshoot of the angular displacement loop controller and an absolute error value of the angular displacement loop controller, where an inertia weight of an overshoot item is 0.009, and an inertia weight of an absolute error value item is 1:

y′ _(fit) =w′ ₁ ×δ′+∫w′ ₂ ×|e′|×dt   (31)

where y′_(fit) is a fitness function value of the angular displacement loop controller, w′₁ is the weight of the overshoot item of the angular velocity loop controller, w′₂ is the weight of the absolute error value item of the angular velocity loop controller, δ is the overshoot of the angular velocity loop controller, and e′ is an error of the angular velocity loop controller.

S407: call the Simulink model based on a sim( ) command in each iteration, to calculate a fitness function value, update a particle velocity, and update a particle position; and perform iteration continuously till the maximum number of iterations, to obtain optimal solutions of K_(p), K_(d), and b.

During implementation of the present disclosure, an angular velocity loop control model and an angular displacement loop control model are first established and trained, and the models obtained after training are used for control. Specifically, as another specific implementation, as shown in FIG. 5, a control method of the vehicle-mounted camera gimbal servo system includes the following steps:

A: measure angular velocity information and angular displacement information of the camera 11 by using the inertial measurement unit mounted on the camera 11, and generate precise angular displacement information by using a quaternion complementary filtering algorithm.

B: establish Simulink models in three directions of pitch, roll and yaw according to a mechanical structure of the camera tri-axial gimbal in combination with parameters of the pitch motor, the roll motor, and the yaw motor; generate IGBT switching sequence information of the drive bridge according to the position sensors in the motors; generate an IGBT duty cycle of the drive bridge based on target voltage information, and implement open-loop control of motor speeds in the three directions of pitch, roll and yaw by using the drive bridge, to obtain an actuator control model, that is, a Simulink control model of the pitch motor, the roll motor, and the yaw motor.

C: establish an angular velocity loop controller model in Simulink based on the actuator control model, and optimize parameters of the angular velocity loop controller model iteratively by using a particle swarm optimization algorithm, to obtain a parameter-optimized angular velocity loop controller model.

D: establish an angular displacement loop controller model in Simulink based on the angular velocity loop controller model, and optimize parameters of the angular displacement loop controller model by using a particle swarm optimization method, to obtain a parameter-optimized angular displacement loop controller model.

E: generate, by using the parameter-optimized angular displacement loop controller model, target angular velocity information according to target steering information set by a user and the actual angular displacement information obtained by the inertial measurement unit;

generate, by using the parameter-optimized angular velocity loop controller model, target voltage information according to a combination of the actual angular velocity information obtained by the inertial measurement unit and the target angular velocity information; generate IGBT switching sequence information of the drive bridge in the three directions according to the position sensors in the pitch motor, the yaw motor, and the roll motor; and generate an IGBT duty cycle of the drive bridge in the three directions based on the target voltage information.

The present disclosure constructs a double closed-loop control framework with an angular displacement loop as an outer loop and an angular velocity loop as an inner loop. Based on nonlinear state error feedback (NLSEF), control volumes are combined nonlinearly to improve the dynamic performance of the servo system; based on an extended state observer (ESO), system disturbance is observed in real time and compensated, thereby improving the anti-disturbance capability of the servo system. Parameters of an angular displacement loop controller are adjusted based on a method of combining experience with optimization, and a weighted sum of an overshoot δ and an error absolute value |e| is used as a fitness function of particle swarm optimization. The method reduces the complexity of parameter adjustment of the angular displacement loop controller and ensures that the servo system achieves a corresponding control effect.

The embodiments of the present disclosure are described above with reference to the accompanying drawings, but the present disclosure is not limited to the foregoing specific implementations. The foregoing specific implementations are merely illustrative rather than restrictive. Under the teaching of the present disclosure, those of ordinary skill in the art may make many variations without departing from the spirit of the present disclosure and the protection scope of the claims, and all such variations fall within the scope of the present disclosure. 

1-9. (canceled)
 10. A vehicle-mounted camera gimbal servo system, comprising a camera tri-axial gimbal and a servo control apparatus, wherein the camera tri-axial gimbal comprises a pitch motor, a roll motor, a yaw motor, a roll arm (1), a pitch arm (4), a yaw arm (5), a gimbal top (7), a camera (11), a pitch-axis bearing (12), and a counterweight block (13); the pitch motor comprises a pitch motor stator (2) and a pitch motor rotor (3); the yaw motor comprises a yaw motor stator (6) and a yaw motor rotor (8); the roll motor comprises a roll motor stator (9) and a roll motor rotor (10); the camera (11) is fixedly connected to the pitch motor rotor (3) through the pitch arm (4), and the pitch motor rotor (3) is used for implementing movement in a pitch direction; the counterweight block (13) is connected on the pitch arm (4) in a threaded manner, to compensate for a gravitational unbalance moment in a roll direction caused by the self-weight of the pitch motor; the pitch arm (4) is constrained by the pitch-axis bearing (12); the pitch motor stator (2) is fixedly connected to the roll motor rotor (10) through the roll arm (1), and the roll motor rotor (10) is used for implementing movement in the roll direction; the roll motor stator (9) is fixedly connected to the yaw motor rotor (8) through the yaw arm (5); the yaw motor rotor (8) is used for implementing movement in a yaw direction; the yaw motor stator (6) is fixedly connected to the gimbal top (7), and the gimbal top (7) is fixed on a side of a fixing position of an inner rear view mirror on an inner top portion of a vehicle, so that the whole camera tri-axial gimbal is fixedly connected to the inner top portion of the vehicle; position sensors are disposed inside the pitch motor, the roll motor and the yaw motor; the servo control apparatus comprises: an inertial measurement unit, mounted on the camera (11), configured to measure angular velocity information and angular displacement information of the camera (11), and generate precise angular displacement information by using a quaternion complementary filtering algorithm; an actuator control unit, configured to generate IGBT switching sequence information of a drive bridge in three directions according to the position sensors in the pitch motor, the yaw motor, and the roll motor; and generate an IGBT duty cycle of the drive bridge in the three directions based on target voltage information, and implement open-loop control of motor speeds in the three directions of pitch, roll and yaw by using the drive bridge; an angular velocity loop control unit, configured to establish an angular velocity loop controller model based on the actuator control unit, wherein after parameter optimization using a particle swarm algorithm, the angular velocity loop controller model generates target voltage information according to a combination of actual angular velocity information obtained by the inertial measurement unit and target angular velocity information, and sends the target voltage information to the actuator control unit; and an angular displacement loop control unit, configured to establish an angular displacement loop controller model based on the optimized angular velocity loop controller model, wherein after parameter optimization using the particle swarm algorithm, the angular displacement loop controller model generates target angular velocity information according to target steering information set by a user and actual angular displacement information obtained by the inertial measurement unit, and sends the target angular velocity information to the angular velocity loop control unit, to implement double closed-loop control.
 11. The vehicle-mounted camera gimbal servo system according to claim 10, wherein the pitch arm (4) is provided with a thread, and the counterweight block (13) is provided with a threaded hole; the thread fits the threaded hole, to connect the pitch arm (4) and the counterweight block (13), and a position of the counterweight block (13) on the pitch arm (4) is adjustable.
 12. The vehicle-mounted camera gimbal servo system according to claim 10, wherein the inertial measurement unit comprises: an accelerometer, configured to measure an angular displacement value of the camera; a gyroscope, configured to measure an instantaneous angular velocity value of the camera; and a complementary calculation unit, configured to perform quaternion complementary calculation on the angular velocity value measured by the gyroscope and the angular displacement value measured by the accelerometer, to obtain a precise instantaneous angle value.
 13. The vehicle-mounted camera gimbal servo system according to claim 10, wherein the pitch motor, the roll motor, and the yaw motor are all brushless DC motors.
 14. A control method of the vehicle-mounted camera gimbal servo system according to claim 10, comprising the following steps: S1: measuring angular velocity information and angular displacement information of the camera (11) by using the inertial measurement unit mounted on the camera (11), and generating precise angular displacement information by using a quaternion complementary filtering algorithm; S2: establishing Simulink models in three directions of pitch, roll and yaw according to a mechanical structure of the camera tri-axial gimbal in combination with parameters of the pitch motor, the roll motor, and the yaw motor; generating IGBT switching sequence information of the drive bridge according to the position sensors in the motors; generating an IGBT duty cycle of the drive bridge based on target voltage information, and implementing open-loop control of motor speeds in the three directions of pitch, roll and yaw by using the drive bridge, to obtain an actuator control model, that is, a Simulink control model of the pitch motor, the roll motor, and the yaw motor; S3: establishing an angular velocity loop controller model in Simulink based on the actuator control model, and optimizing parameters of the angular velocity loop controller model iteratively by using a particle swarm optimization algorithm, wherein a parameter-optimized angular velocity loop controller generates the target voltage information according to a combination of the actual angular velocity information obtained by the inertial measurement unit and target angular velocity information; and S4: establishing an angular displacement loop controller model in Simulink based on the angular velocity loop controller model, and optimizing parameters of the angular displacement loop controller model by using a particle swarm optimization method, wherein the parameter-optimized angular displacement loop controller model generates the target angular velocity information according to target steering information set by a user and the actual angular displacement information obtained by the inertial measurement unit, and sends the target angular velocity information to the angular velocity loop controller model, thereby implementing double closed-loop control.
 15. The control method of the vehicle-mounted camera gimbal servo system according to claim 14, wherein the pitch arm (4) is provided with a thread, and the counterweight block (13) is provided with a threaded hole; the thread fits the threaded hole, to connect the pitch arm (4) and the counterweight block (13), and a position of the counterweight block (13) on the pitch arm (4) is adjustable.
 16. The control method of the vehicle-mounted camera gimbal servo system according to claim 14, wherein the inertial measurement unit comprises: an accelerometer, configured to measure an angular displacement value of the camera; a gyroscope, configured to measure an instantaneous angular velocity value of the camera; and a complementary calculation unit, configured to perform quaternion complementary calculation on the angular velocity value measured by the gyroscope and the angular displacement value measured by the accelerometer, to obtain a precise instantaneous angle value.
 17. The control method of the vehicle-mounted camera gimbal servo system according to claim 14, wherein the pitch motor, the roll motor, and the yaw motor are all brushless DC motors.
 18. The control method of the vehicle-mounted camera gimbal servo system according to claim 14, wherein step S1 specifically comprises: for the instantaneous angular velocity obtained by the gyroscope, obtaining quaternions of the instantaneous angular velocity by solving a quaternion update equation: wherein the quaternion update equation is as follows: $\begin{matrix} {\begin{pmatrix} {\overset{.}{q}}_{0} \\ {\overset{.}{q}}_{1} \\ {\overset{.}{q}}_{2} \\ {\overset{.}{q}}_{3} \end{pmatrix} = {\frac{1}{2}\begin{pmatrix} 0 & {- \omega_{x}} & {- \omega_{y}} & {- \omega_{z}} \\ \omega_{x} & 0 & \omega_{z} & {- \omega_{y}} \\ \omega_{y} & {- \omega_{z}} & 0 & \omega_{z} \\ \omega_{z} & \omega_{y} & {- \omega_{x}} & 0 \end{pmatrix}\begin{pmatrix} q_{0} \\ q_{1} \\ q_{2} \\ q_{3} \end{pmatrix}}} & (1) \end{matrix}$ wherein q₀, q₁, q₂, and q₃ represent the quaternions of the instantaneous angular velocity; {dot over (q)}₀, {dot over (q)}₁, {dot over (q)}₂, and {dot over (q)}₃ are derivatives of the quaternions; ω_(x), ω_(y), and ω_(z) are an x-axis component, a y-axis component, and a z-axis component of the instantaneous angular velocity, respectively; determining, according to the quaternions of the instantaneous angular velocity, a quaternion matrix for transformation from a measured-object coordinate system b to a ground coordinate system R: $\begin{matrix} {C_{b}^{R} = {\begin{pmatrix} T_{11} & T_{12} & T_{13} \\ T_{21} & T_{22} & T_{23} \\ T_{31} & T_{32} & T_{33} \end{pmatrix} = \begin{pmatrix} {1 - {2\left( {q_{2}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{1}q_{2}} - {q_{0}q_{3}}} \right)} & {2\left( {{q_{1}q_{3}} + {q_{0}q_{2}}} \right)} \\ {2\left( {{q_{1}q_{2}} + {q_{0}q_{3}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{2}q_{3}} - {q_{0}q_{2}}} \right)} \\ {2\left( {{q_{1}q_{3}} - {q_{0}q_{2}}} \right)} & {2\left( {{q_{2}q_{3}} + {q_{0}q_{1}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{2}^{2}} \right)}} \end{pmatrix}}} & (2) \end{matrix}$ wherein C_(b) ^(R) is the quaternion matrix; T₁₁, T₁₂, T₁₃, T₂₁, T₂₂, T₂₃, T₃₁, T₃₂, and T₃₃ are elements of the quaternion matrix; determining, according to the quaternion matrix, an attitude angle as follows: $\begin{matrix} \left\{ \begin{matrix} {\theta = {\arcsin\left( T_{32} \right)}} \\ {\gamma = {\arctan\left( {- \frac{T_{31}}{T_{33}}} \right)}} \\ {\psi = {\arctan\left( \frac{T_{12}}{T_{22}} \right)}} \end{matrix} \right. & (3) \end{matrix}$ wherein θ is a pitch angle, γ is a roll angle, and ψ is a yaw angle; and processing, by using a low-pass filter, angle values obtained by the accelerometer; processing, by using a high-pass filter, the attitude angle calculated by the gyroscope; and calculating a weighted sum to obtain the precise angular displacement information; $\begin{matrix} {\beta_{p} = {{\frac{dt}{{dt} + \tau} \times \beta_{p1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{p2}}}} & (4) \end{matrix}$ $\begin{matrix} {\beta_{r} = {{\frac{dt}{{dt} + \tau} \times \beta_{r1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{r2}}}} & (5) \end{matrix}$ wherein β_(p) is a pitch angle in the angular displacement information, β_(p1) is a pitch angle value obtained by the accelerometer, β_(p2)=θ is a pitch angle calculated by the gyroscope, β_(r) is a roll angle in the precise angular displacement information, β_(r1) is a roll angle value obtained by the accelerometer, β_(r2)=γ is a roll angle calculated by the gyroscope, and τ is a time constant.
 19. The control method of the vehicle-mounted camera gimbal servo system according to claim 15, wherein step S1 specifically comprises: for the instantaneous angular velocity obtained by the gyroscope, obtaining quaternions of the instantaneous angular velocity by solving a quaternion update equation: wherein the quaternion update equation is as follows: $\begin{matrix} {\begin{pmatrix} {\overset{.}{q}}_{0} \\ {\overset{.}{q}}_{1} \\ {\overset{.}{q}}_{2} \\ {\overset{.}{q}}_{3} \end{pmatrix} = {\frac{1}{2}\begin{pmatrix} 0 & {- \omega_{x}} & {- \omega_{y}} & {- \omega_{z}} \\ \omega_{x} & 0 & \omega_{z} & {- \omega_{y}} \\ \omega_{y} & {- \omega_{z}} & 0 & \omega_{z} \\ \omega_{z} & \omega_{y} & {- \omega_{x}} & 0 \end{pmatrix}\begin{pmatrix} q_{0} \\ q_{1} \\ q_{2} \\ q_{3} \end{pmatrix}}} & (1) \end{matrix}$ wherein q₀, q₁, q₂, and q₃ represent the quaternions of the instantaneous angular velocity; {dot over (q)}₀, {dot over (q)}₁, {dot over (q)}₂, and {dot over (q)}₃ are derivatives of the quaternions; ω_(x), ω_(y), and ω_(z) are an x-axis component, a y-axis component, and a z-axis component of the instantaneous angular velocity, respectively; determining, according to the quaternions of the instantaneous angular velocity, a quaternion matrix for transformation from a measured-object coordinate system b to a ground coordinate system R: $\begin{matrix} {C_{b}^{R} = {\begin{pmatrix} T_{11} & T_{12} & T_{13} \\ T_{21} & T_{22} & T_{23} \\ T_{31} & T_{32} & T_{33} \end{pmatrix} = \begin{pmatrix} {1 - {2\left( {q_{2}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{1}q_{2}} - {q_{0}q_{3}}} \right)} & {2\left( {{q_{1}q_{3}} + {q_{0}q_{2}}} \right)} \\ {2\left( {{q_{1}q_{2}} + {q_{0}q_{3}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{2}q_{3}} - {q_{0}q_{2}}} \right)} \\ {2\left( {{q_{1}q_{3}} - {q_{0}q_{2}}} \right)} & {2\left( {{q_{2}q_{3}} + {q_{0}q_{1}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{2}^{2}} \right)}} \end{pmatrix}}} & (2) \end{matrix}$ wherein C_(b) ^(R) is the quaternion matrix; T₁₁, T₁₂, T₁₃, T₂₁, T₂₂, T₂₃, T₃₁, T₃₂, and T₃₃ are elements of the quaternion matrix; determining, according to the quaternion matrix, an attitude angle as follows: $\begin{matrix} \left\{ \begin{matrix} {\theta = {\arcsin\left( T_{32} \right)}} \\ {\gamma = {\arctan\left( {- \frac{T_{31}}{T_{33}}} \right)}} \\ {\psi = {\arctan\left( \frac{T_{12}}{T_{22}} \right)}} \end{matrix} \right. & (3) \end{matrix}$ wherein θ is a pitch angle, γ is a roll angle, and ψ is a yaw angle; and processing, by using a low-pass filter, angle values obtained by the accelerometer; processing, by using a high-pass filter, the attitude angle calculated by the gyroscope; and calculating a weighted sum to obtain the precise angular displacement information; $\begin{matrix} {\beta_{p} = {{\frac{dt}{{dt} + \tau} \times \beta_{p1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{p2}}}} & (4) \end{matrix}$ $\begin{matrix} {\beta_{r} = {{\frac{dt}{{dt} + \tau} \times \beta_{r1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{r2}}}} & (5) \end{matrix}$ wherein β_(p) is a pitch angle in the angular displacement information, β_(p1) is a pitch angle value obtained by the accelerometer, β_(p2)=θ is a pitch angle calculated by the gyroscope, β_(r) is a roll angle in the precise angular displacement information, β_(r1) is a roll angle value obtained by the accelerometer, β_(r2)=γ is a roll angle calculated by the gyroscope, and τ is a time constant.
 20. The control method of the vehicle-mounted camera gimbal servo system according to claim 16, wherein step S1 specifically comprises: for the instantaneous angular velocity obtained by the gyroscope, obtaining quaternions of the instantaneous angular velocity by solving a quaternion update equation: wherein the quaternion update equation is as follows: $\begin{matrix} {\begin{pmatrix} {\overset{.}{q}}_{0} \\ {\overset{.}{q}}_{1} \\ {\overset{.}{q}}_{2} \\ {\overset{.}{q}}_{3} \end{pmatrix} = {\frac{1}{2}\begin{pmatrix} 0 & {- \omega_{x}} & {- \omega_{y}} & {- \omega_{z}} \\ \omega_{x} & 0 & \omega_{z} & {- \omega_{y}} \\ \omega_{y} & {- \omega_{z}} & 0 & \omega_{z} \\ \omega_{z} & \omega_{y} & {- \omega_{x}} & 0 \end{pmatrix}\begin{pmatrix} q_{0} \\ q_{1} \\ q_{2} \\ q_{3} \end{pmatrix}}} & (1) \end{matrix}$ wherein q₀, q₁, q₂, and q₃ represent the quaternions of the instantaneous angular velocity; {dot over (q)}₀, {dot over (q)}₁, {dot over (q)}₂, and {dot over (q)}₃ are derivatives of the quaternions; ω_(x), ω_(y), and ω_(z) are an x-axis component, a y-axis component, and a z-axis component of the instantaneous angular velocity, respectively; determining, according to the quaternions of the instantaneous angular velocity, a quaternion matrix for transformation from a measured-object coordinate system b to a ground coordinate system R: $\begin{matrix} {C_{b}^{R} = {\begin{pmatrix} T_{11} & T_{12} & T_{13} \\ T_{21} & T_{22} & T_{23} \\ T_{31} & T_{32} & T_{33} \end{pmatrix} = \begin{pmatrix} {1 - {2\left( {q_{2}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{1}q_{2}} - {q_{0}q_{3}}} \right)} & {2\left( {{q_{1}q_{3}} + {q_{0}q_{2}}} \right)} \\ {2\left( {{q_{1}q_{2}} + {q_{0}q_{3}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{2}q_{3}} - {q_{0}q_{2}}} \right)} \\ {2\left( {{q_{1}q_{3}} - {q_{0}q_{2}}} \right)} & {2\left( {{q_{2}q_{3}} + {q_{0}q_{1}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{2}^{2}} \right)}} \end{pmatrix}}} & (2) \end{matrix}$ wherein C_(b) ^(R) is the quaternion matrix; T₁₁, T₁₂, T₁₃, T₂₁, T₂₂, T₂₃, T₃₁, T₃₂, and T₃₃ are elements of the quaternion matrix; determining, according to the quaternion matrix, an attitude angle as follows: $\begin{matrix} \left\{ \begin{matrix} {\theta = {\arcsin\left( T_{32} \right)}} \\ {\gamma = {\arctan\left( {- \frac{T_{31}}{T_{33}}} \right)}} \\ {\psi = {\arctan\left( \frac{T_{12}}{T_{22}} \right)}} \end{matrix} \right. & (3) \end{matrix}$ wherein θ is a pitch angle, γ is a roll angle, and ψ is a yaw angle; and processing, by using a low-pass filter, angle values obtained by the accelerometer; processing, by using a high-pass filter, the attitude angle calculated by the gyroscope; and calculating a weighted sum to obtain the precise angular displacement information; $\begin{matrix} {\beta_{p} = {{\frac{dt}{{dt} + \tau} \times \beta_{p1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{p2}}}} & (4) \end{matrix}$ $\begin{matrix} {\beta_{r} = {{\frac{dt}{{dt} + \tau} \times \beta_{r1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{r2}}}} & (5) \end{matrix}$ wherein β_(p) is a pitch angle in the angular displacement information, β_(p1) is a pitch angle value obtained by the accelerometer, β_(p2)=θ is a pitch angle calculated by the gyroscope, β_(r) is a roll angle in the precise angular displacement information, β_(r1) is a roll angle value obtained by the accelerometer, β_(r2)=γ is a roll angle calculated by the gyroscope, and τ is a time constant.
 21. The control method of the vehicle-mounted camera gimbal servo system according to claim 17, wherein step S1 specifically comprises: for the instantaneous angular velocity obtained by the gyroscope, obtaining quaternions of the instantaneous angular velocity by solving a quaternion update equation: wherein the quaternion update equation is as follows: $\begin{matrix} {\begin{pmatrix} {\overset{.}{q}}_{0} \\ {\overset{.}{q}}_{1} \\ {\overset{.}{q}}_{2} \\ {\overset{.}{q}}_{3} \end{pmatrix} = {\frac{1}{2}\begin{pmatrix} 0 & {- \omega_{x}} & {- \omega_{y}} & {- \omega_{z}} \\ \omega_{x} & 0 & \omega_{z} & {- \omega_{y}} \\ \omega_{y} & {- \omega_{z}} & 0 & {- \omega_{x}} \\ \omega_{z} & \omega_{y} & {- \omega_{x}} & 0 \end{pmatrix}\begin{pmatrix} q_{0} \\ q_{1} \\ q_{2} \\ q_{3} \end{pmatrix}}} & (1) \end{matrix}$ wherein q₀, q₁, q₂, and q₃ represent the quaternions of the instantaneous angular velocity; {dot over (q)}₀, {dot over (q)}₁, {dot over (q)}₂, and {dot over (q)}₃ are derivatives of the quaternions; ω_(x), ω_(y), and ω_(z) are an x-axis component, a y-axis component, and a z-axis component of the instantaneous angular velocity, respectively; determining, according to the quaternions of the instantaneous angular velocity, a quaternion matrix for transformation from a measured-object coordinate system b to a ground coordinate system R: $\begin{matrix} {C_{b}^{R} = {\begin{pmatrix} T_{11} & T_{12} & T_{13} \\ T_{21} & T_{22} & T_{23} \\ T_{31} & T_{32} & T_{33} \end{pmatrix} = \begin{pmatrix} {1 - {2\left( {q_{2}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{1}q_{2}} - {q_{0}q_{3}}} \right)} & {2\left( {{q_{1}q_{3}} + {q_{0}q_{2}}} \right)} \\ {2\left( {{q_{1}q_{2}} + {q_{0}q_{3}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{3}^{2}} \right)}} & {2\left( {{q_{2}q_{3}} - {q_{0}q_{1}}} \right)} \\ {2\left( {{q_{1}q_{3}} - {q_{0}q_{3}}} \right)} & {2\left( {{q_{2}q_{3}} + {q_{0}q_{}}} \right)} & {1 - {2\left( {q_{1}^{2} + q_{2}^{2}} \right)}} \end{pmatrix}}} & (2) \end{matrix}$ wherein C_(b) ^(R) is the quaternion matrix; T₁₁, T₁₂, T₁₃, T₂₁, T₂₂, T₂₃, T₃₁, T₃₂, and T₃₃ are elements of the quaternion matrix; determining, according to the quaternion matrix, an attitude angle as follows: $\begin{matrix} \left\{ \begin{matrix} {\theta = {\arctan\left( T_{32} \right)}} \\ {\gamma = {\arctan\left( {- \frac{T_{31}}{T_{33}}} \right)}} \\ {\psi = {\arctan\left( \frac{T_{12}}{T_{22}} \right)}} \end{matrix} \right. & (3) \end{matrix}$ wherein θ is a pitch angle, γ is a roll angle, and ψ is a yaw angle; and processing, by using a low-pass filter, angle values obtained by the accelerometer; processing, by using a high-pass filter, the attitude angle calculated by the gyroscope; and calculating a weighted sum to obtain the precise angular displacement information; $\begin{matrix} {\beta_{p} = {{\frac{dt}{{dt} + \tau} \times \beta_{p1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{p2}}}} & (4) \end{matrix}$ $\begin{matrix} {\beta_{r} = {{\frac{dt}{{dt} + \tau} \times \beta_{r1}} + {\frac{\tau}{{dt} + \tau} \times \beta_{r2}}}} & (5) \end{matrix}$ wherein β_(p) is a pitch angle in the angular displacement information,β_(p1) is a pitch angle value obtained by the accelerometer, β_(p2)=θ is a pitch angle calculated by the gyroscope, β_(r) is a roll angle in the precise angular displacement information, β_(r1) is a roll angle value obtained by the accelerometer, β_(r2)=γ is a roll angle calculated by the gyroscope, and r is a time constant.
 22. The control method of the vehicle-mounted camera gimbal servo system according to claim 14, wherein step S2 specifically comprises the following sub-steps: S201: establishing a three-dimensional model of the camera tri-axial gimbal in SolidWorks, configuring a material of the three-dimensional model, and calculating rotational inertia of load on three rotation shafts; S202: building the actuator control model in Simulink, configuring motor parameters comprising interphase inductance, line resistance, number of pole pairs, and viscosity coefficients of the rotation shafts, and the rotational inertia of the load; S203: building an encoder module in Simulink, and calculating an IGBT bridge switching sequence based on information of the position sensors; S204: building a PWM module and a constant voltage power supply module in Simulink; S205: inputting a driving voltage signal, that is, the target voltage information u outputted by the angular velocity loop control unit, into the whole model, wherein the input satisfies the following condition: $\begin{matrix} \left\{ \begin{matrix} {u > {- U_{\max}}} \\ {u < U_{\max}} \end{matrix} \right. & (6) \end{matrix}$ to obtain the actuator control model, wherein U_(max) is a maximum voltage limit.
 23. The control method of the vehicle-mounted camera gimbal servo system according to claim 15, wherein step S2 specifically comprises the following sub-steps: S201: establishing a three-dimensional model of the camera tri-axial gimbal in SolidWorks, configuring a material of the three-dimensional model, and calculating rotational inertia of load on three rotation shafts; S202: building the actuator control model in Simulink, configuring motor parameters comprising interphase inductance, line resistance, number of pole pairs, and viscosity coefficients of the rotation shafts, and the rotational inertia of the load; S203: building an encoder module in Simulink, and calculating an IGBT bridge switching sequence based on information of the position sensors; S204: building a PWM module and a constant voltage power supply module in Simulink; S205: inputting a driving voltage signal, that is, the target voltage information u outputted by the angular velocity loop control unit, into the whole model, wherein the input satisfies the following condition: $\begin{matrix} \left\{ \begin{matrix} {u > {- U_{\max}}} \\ {u < U_{\max}} \end{matrix} \right. & (6) \end{matrix}$ to obtain the actuator control model, wherein U_(max) is a maximum voltage limit.
 24. The control method of the vehicle-mounted camera gimbal servo system according to claim 16, wherein step S2 specifically comprises the following sub-steps: S201: establishing a three-dimensional model of the camera tri-axial gimbal in SolidWorks, configuring a material of the three-dimensional model, and calculating rotational inertia of load on three rotation shafts; S202: building the actuator control model in Simulink, configuring motor parameters comprising interphase inductance, line resistance, number of pole pairs, and viscosity coefficients of the rotation shafts, and the rotational inertia of the load; S203: building an encoder module in Simulink, and calculating an IGBT bridge switching sequence based on information of the position sensors; S204: building a PWM module and a constant voltage power supply module in Simulink; S205: inputting a driving voltage signal, that is, the target voltage information u outputted by the angular velocity loop control unit, into the whole model, wherein the input satisfies the following condition: $\begin{matrix} \left\{ \begin{matrix} {u > {- U_{\max}}} \\ {u < U_{\max}} \end{matrix} \right. & (6) \end{matrix}$ to obtain the actuator control model, wherein U_(max) is a maximum voltage limit.
 25. The control method of the vehicle-mounted camera gimbal servo system according to claim 17, wherein step S2 specifically comprises the following sub-steps: S201: establishing a three-dimensional model of the camera tri-axial gimbal in SolidWorks, configuring a material of the three-dimensional model, and calculating rotational inertia of load on three rotation shafts; S202: building the actuator control model in Simulink, configuring motor parameters comprising interphase inductance, line resistance, number of pole pairs, and viscosity coefficients of the rotation shafts, and the rotational inertia of the load; S203: building an encoder module in Simulink, and calculating an IGBT bridge switching sequence based on information of the position sensors; S204: building a PWM module and a constant voltage power supply module in Simulink; S205: inputting a driving voltage signal, that is, the target voltage information u outputted by the angular velocity loop control unit, into the whole model, wherein the input satisfies the following condition: $\begin{matrix} \left\{ \begin{matrix} {u > {- U_{\max}}} \\ {u < U_{\max}} \end{matrix} \right. & (6) \end{matrix}$ to obtain the actuator control model, wherein U_(max) is a maximum voltage limit.
 26. The control method of the vehicle-mounted camera gimbal servo system according to claim 14, wherein step S3 comprises: S301: establishing an angular velocity loop controller model in Simulink, and saving the angular velocity loop controller model in .mdl format; setting a step target angular velocity in the angular velocity loop controller model in .mdl format, using parameters of the angular velocity loop controller as a model input, and using a feedback angular velocity of the step target angular velocity of the angular velocity loop controller model as a model output, wherein the parameters of the angular velocity loop controller comprise a proportion coefficient K′_(p) and an integral coefficient K_(i); S302: establishing a PSO main function in Matlab, setting the number of particle dimensions to 2, the number of particles to 50, and the maximum number of iterations to 100, wherein in the particle velocity update formula (7), i denotes the i-th particle, k denotes the number of iterations, d denotes the number of dimensions, and x denotes a particle position; pbest and gbest denote an individual historical optimal position and a global optimal position, respectively; c₁ and c₂ are an individual learning rate and a group learning rate, respectively; r₁ and r₂ are [0, 1], w is an inertia weight, and w decreases linearly from 0.9 to 0.4 to improve search efficiency and reduce a probability of falling into a local optimum; v _(id) ^(k) =w×v _(id) ^(k-1) +c ₁ ×r ₁×(pbest_(id) −x _(id) ^(k-1))+c ₂ ×r ₂×(gbest_(d) −x _(id) ^(k-1))   (7) x _(id) ^(k) =x _(id) ^(k-1) +v _(id) ^(k-1)   (8) wherein v_(id) ^(k) and v_(id) ^(k-1) denote particle velocities of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; x_(id) ^(k) and x_(id) ^(k-1) denote particle positions of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; pbest_(id) denotes an individual historical optimal position of the i-th particle in the d-th dimension during the (k−1)-th iteration, and gbest_(d) denotes a global optimal position in the d-th dimension during the (k−1)-th iteration; S303: defining a fitness function of the angular velocity loop controller as a weighted sum of an overshoot and an absolute error value of the angular velocity loop controller, wherein an inertia weight of an overshoot item is 0.009, and an inertia weight of an absolute error value item is 1: y _(fit) =w ₁×δ+∫w ₂ ×|e|×dt   (9) wherein y_(fit) is a fitness function value of the angular velocity loop controller, w₁ is the weight of the overshoot item of the angular velocity loop controller, w₂ is the weight of the absolute error value item of the angular velocity loop controller, δ is the overshoot of the angular velocity loop controller, and e is an error of the angular velocity loop controller; S304: calling the angular displacement loop controller model in .mdl format based on a sim( ) command in each iteration, to obtain a feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; calculating a fitness function value of each particle by using formula (9) according to the feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; updating a particle velocity by using formula (7), and updating a particle position by using formula (8), wherein the particle position and velocity need to satisfy constraint conditions defined by formula (10) and formula (11): $\begin{matrix} \left\{ \begin{matrix} {x_{id}^{k} > {- x_{\max}}} \\ {x_{id}^{k} < x_{\max}} \end{matrix} \right. & (10) \end{matrix}$ $\begin{matrix} \left\{ \begin{matrix} {v_{id}^{k} > {- v_{\max}}} \\ {v_{id}^{k} < v_{\max}} \end{matrix} \right. & (11) \end{matrix}$ wherein x_(max) is a maximum position limit, and v_(max) is a maximum velocity limit; and performing iteration continuously till the maximum number of iterations, and obtaining a global optimal position at the maximum number of iterations as an optimal solution of the parameters of the velocity loop controller.
 27. The control method of the vehicle-mounted camera gimbal servo system according to claim 15, wherein step S3 comprises: S301: establishing an angular velocity loop controller model in Simulink, and saving the angular velocity loop controller model in .mdl format; setting a step target angular velocity in the angular velocity loop controller model in .mdl format, using parameters of the angular velocity loop controller as a model input, and using a feedback angular velocity of the step target angular velocity of the angular velocity loop controller model as a model output, wherein the parameters of the angular velocity loop controller comprise a proportion coefficient K′_(p) and an integral coefficient K_(i); S302: establishing a PSO main function in Matlab, setting the number of particle dimensions to 2, the number of particles to 50, and the maximum number of iterations to 100, wherein in the particle velocity update formula (7), i denotes the i-th particle, k denotes the number of iterations, d denotes the number of dimensions, and x denotes a particle position; pbest and gbest denote an individual historical optimal position and a global optimal position, respectively; c₁ and c₂ are an individual learning rate and a group learning rate, respectively; r₁ and r₂ are [0, 1], w is an inertia weight, and w decreases linearly from 0.9 to 0.4 to improve search efficiency and reduce a probability of falling into a local optimum; v _(id) ^(k) =w×v _(id) ^(k-1) +c ₁ ×r ₁×(pbest_(id) −x _(id) ^(k-1))+c ₂ ×r ₂×(gbest_(d) −x _(id) ^(k-1))   (7) x _(id) ^(k) =x _(id) ^(k-1) +v _(id) ^(k-1)   (8) wherein v_(id) ^(k) and v_(id) ^(k-1) denote particle velocities of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; x_(id) ^(k) and x_(id) ^(k-1) denote particle positions of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; pbest_(id) denotes an individual historical optimal position of the i-th particle in the d-th dimension during the (k−1)-th iteration, and gbest_(d) denotes a global optimal position in the d-th dimension during the (k−1)-th iteration; S303: defining a fitness function of the angular velocity loop controller as a weighted sum of an overshoot and an absolute error value of the angular velocity loop controller, wherein an inertia weight of an overshoot item is 0.009, and an inertia weight of an absolute error value item is 1: y _(fit) =w ₁×δ+∫w ₂ ×|e|×dt   (9) wherein y_(fit) is a fitness function value of the angular velocity loop controller, w₁ is the weight of the overshoot item of the angular velocity loop controller, w₂ is the weight of the absolute error value item of the angular velocity loop controller, δ is the overshoot of the angular velocity loop controller, and e is an error of the angular velocity loop controller; S304: calling the angular displacement loop controller model in .mdl format based on a sim( ) command in each iteration, to obtain a feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; calculating a fitness function value of each particle by using formula (9) according to the feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; updating a particle velocity by using formula (7), and updating a particle position by using formula (8), wherein the particle position and velocity need to satisfy constraint conditions defined by formula (10) and formula (11): $\begin{matrix} \left\{ \begin{matrix} {x_{id}^{k} > {- x_{\max}}} \\ {x_{id}^{k} < x_{\max}} \end{matrix} \right. & (10) \end{matrix}$ $\begin{matrix} \left\{ \begin{matrix} {v_{id}^{k} > {- v_{\max}}} \\ {v_{id}^{k} < v_{\max}} \end{matrix} \right. & (11) \end{matrix}$ wherein x_(max) is a maximum position limit, and v_(max) is a maximum velocity limit; and performing iteration continuously till the maximum number of iterations, and obtaining a global optimal position at the maximum number of iterations as an optimal solution of the parameters of the velocity loop controller.
 28. The control method of the vehicle-mounted camera gimbal servo system according to claim 16, wherein step S3 comprises: S301: establishing an angular velocity loop controller model in Simulink, and saving the angular velocity loop controller model in .mdl format; setting a step target angular velocity in the angular velocity loop controller model in .mdl format, using parameters of the angular velocity loop controller as a model input, and using a feedback angular velocity of the step target angular velocity of the angular velocity loop controller model as a model output, wherein the parameters of the angular velocity loop controller comprise a proportion coefficient K′_(p) and an integral coefficient K_(i); S302: establishing a PSO main function in Matlab, setting the number of particle dimensions to 2, the number of particles to 50, and the maximum number of iterations to 100, wherein in the particle velocity update formula (7), i denotes the i-th particle, k denotes the number of iterations, d denotes the number of dimensions, and x denotes a particle position; pbest and gbest denote an individual historical optimal position and a global optimal position, respectively; c₁ and c₂ are an individual learning rate and a group learning rate, respectively; r₁ and r₂ are [0, 1], w is an inertia weight, and w decreases linearly from 0.9 to 0.4 to improve search efficiency and reduce a probability of falling into a local optimum; v _(id) ^(k) =w×v _(id) ^(k-1) +c ₁ ×r ₁×(pbest_(id) −x _(id) ^(k-1))+c ₂ ×r ₂×(gbest_(d) −x _(id) ^(k-1))   (7) x _(id) ^(k) =x _(id) ^(k-1) +v _(id) ^(k-1)   (8) wherein v_(id) ^(k) and v_(id) ^(k-1) denote particle velocities of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; x_(id) ^(k) and x_(id) ^(k-1) denote particle positions of the i-th particle in the d-th dimension during the k-th iteration and the (k−1)-th iteration, respectively; pbest_(id) denotes an individual historical optimal position of the i-th particle in the d-th dimension during the (k−1)-th iteration, and gbest_(d) denotes a global optimal position in the d-th dimension during the (k−1)-th iteration; S303: defining a fitness function of the angular velocity loop controller as a weighted sum of an overshoot and an absolute error value of the angular velocity loop controller, wherein an inertia weight of an overshoot item is 0.009, and an inertia weight of an absolute error value item is 1: y _(fit) =w ₁×δ+∫w ₂ ×|e|×dt   (9) wherein y_(fit) is a fitness function value of the angular velocity loop controller, w₁ is the weight of the overshoot item of the angular velocity loop controller, w₂ is the weight of the absolute error value item of the angular velocity loop controller, δ is the overshoot of the angular velocity loop controller, and e is an error of the angular velocity loop controller; S304: calling the angular displacement loop controller model in .mdl format based on a sim( ) command in each iteration, to obtain a feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; calculating a fitness function value of each particle by using formula (9) according to the feedback steering angle of the step target angular velocity of the angular displacement loop controller model corresponding to each particle; updating a particle velocity by using formula (7), and updating a particle position by using formula (8), wherein the particle position and velocity need to satisfy constraint conditions defined by formula (10) and formula (11): $\begin{matrix} \left\{ \begin{matrix} {x_{id}^{k} > {- x_{\max}}} \\ {x_{id}^{k} < x_{\max}} \end{matrix} \right. & (10) \end{matrix}$ $\begin{matrix} \left\{ \begin{matrix} {v_{id}^{k} > {- v_{\max}}} \\ {v_{id}^{k} < v_{\max}} \end{matrix} \right. & (11) \end{matrix}$ wherein x_(max) is a maximum position limit, and v_(max) is a maximum velocity limit; and performing iteration continuously till the maximum number of iterations, and obtaining a global optimal position at the maximum number of iterations as an optimal solution of the parameters of the velocity loop controller.
 29. The control method of the vehicle-mounted camera gimbal servo system according to claim 14, wherein step S4 specifically comprises: S401: establishing an extended state observer (ESO), wherein a basic process of a second-order ESO discrete system is as follows: $\begin{matrix} {e_{0} = {{z_{1}(k)} - {y(k)}}} & (12) \end{matrix}$ $\begin{matrix} {{z_{1}\left( {k + 1} \right)} = {{z_{1}(k)} + {{ts} \times \left( {{z_{2}(k)} - {\beta_{01} \times e_{0}}} \right)}}} & (13) \end{matrix}$ $\begin{matrix} {{z_{2}\left( {k + 1} \right)} = {{z_{2}(k)} + {{tx} \times \left( {{z_{3}(k)} - {\beta_{02} \times {{fal}\left( {e_{0},0.5,\delta_{0}} \right)}} + {b \times u}} \right)}}} & (14) \end{matrix}$ $\begin{matrix} {{z_{3}\left( {k + 1} \right)} = {{z_{3}(k)} - {{ts} \times \beta_{03} \times {{fal}\left( {e_{0},0.25,\delta_{0}} \right)}}}} & (15) \end{matrix}$ $\begin{matrix} {{{fal}\left( {e_{0},\alpha,\delta_{0}} \right)} = \left\{ {\begin{matrix} {{{❘e_{0}❘}^{\alpha} \times {{sign}\left( e_{0} \right)}},{{❘e_{0}❘} > \delta_{0}}} \\ {\frac{e_{0}}{\delta_{0}^{1 - \alpha}},{{❘e_{0}❘} \leq \delta_{0}},} \end{matrix}\left( {\delta_{0} > 0} \right)} \right.} & (16) \end{matrix}$ wherein e₀ is an output error; k denotes moment k; y(k) is an output of the whole system at moment k; z₁(k), z₂(k), and z₃(k) are observed state vectors at moment k; z₁(k+1), z₂(k+1), and z₃(k+1) are updated observed state vectors at moment k+1; is is a step size; β₀₁, β₀₂, and β₀₃ are a first error coefficient, a second error coefficient, and a third error coefficient of the ESO, respectively; α and δ₀ are an exponential coefficient and a threshold coefficient of a fal function, respectively; b is a control volume coefficient; fal(⋅) is the fal function; and u is a control volume outputted by the angular displacement loop controller; S402: establishing a tracking differentiator (TD), wherein the discrete system TD established based on fhan is as follows: fh=fhan(x ₁(k)−v(k),x ₂(k),r ₀ ,h ₀)   (17) x ₁(k+1)=x ₁(k)+ts×x ₂(k)   (18) x ₂(k+1)=x ₂(k)+ts×fh   (19) wherein v(k) is a control target at moment k; x₁(k) and x₂(k) are tracking control targets at moment k; x₁(k+1) and x₂(k+1) are updated tracking control targets at moment k+1; is is a step size; fhan(⋅) is a fhan function, and an expression of fhan is shown in formula (28): the expression of fhan is shown as follows: $\begin{matrix} {d = {r_{0} \times h_{0}^{2}}} & (20) \end{matrix}$ $\begin{matrix} {a_{0} = {h_{0} \times {x_{2}(k)}}} & (21) \end{matrix}$ $\begin{matrix} {y = {{x_{1}(k)} - {v(k)} + a_{0}}} & (22) \end{matrix}$ $\begin{matrix} {a_{1} = \sqrt{d \times \left( {d + {8 \times {❘{y(k)}❘}}} \right)}} & (23) \end{matrix}$ $\begin{matrix} {a_{2} = {a_{0} + {{{sign}\left( {y(k)} \right)} \times \frac{\left( {a_{1} - d} \right)}{2}}}} & (24) \end{matrix}$ $\begin{matrix} {s_{y} = \frac{{{sign}\left( {{y(k)} + d} \right)} - {{sign}\left( {{y(k)} - d} \right)}}{2}} & (25) \end{matrix}$ $\begin{matrix} {a = {{\left( {a_{0} + {y(k)} - a_{2}} \right) \times s_{y}} + a_{2}}} & (26) \end{matrix}$ $\begin{matrix} {s_{a} = \frac{{{sign}\left( {a + d} \right)} - {{sign}\left( {a - d} \right)}}{2}} & (27) \end{matrix}$ $\begin{matrix} {{fhan} = {{{- r_{0}} \times \left\lbrack {\frac{a}{d} - {{sign}(a)}} \right\rbrack \times s_{a}} - {r_{0} \times {{sign}(a)}}}} & (28) \end{matrix}$ wherein x is an inputted state vector; r₀ and h₀ are a first set parameter and a second set parameter of the fhan function; d, a₀, a₁, a₂, s_(y), a, and s_(a) are a first intermediate parameter, a second intermediate parameter, a third intermediate parameter, a fourth intermediate parameter, a fifth intermediate parameter, a sixth intermediate parameter, and a seventh intermediate parameter of the fhan function, respectively; S403: establishing a nonlinear state error feedback (NLSEF) controller, wherein a discrete process of the nonlinear state error feedback controller is as follows: $\begin{matrix} {u_{0} = {{K_{p} \times {{fal}\left( {e_{1},a_{1},\delta_{0}} \right)}} + {K_{d} \times {{fal}\left( {e_{2},a_{2},\delta_{0}} \right)}}}} & (29) \end{matrix}$ $\begin{matrix} {u = {u_{0} - \frac{z_{3}\left( {k + 1} \right)}{b_{0}}}} & (30) \end{matrix}$ wherein u₀ is an intermediate parameter of the angular displacement loop controller; u is a control volume outputted by the angular displacement loop controller; e₁ and e₂ are two observed state vector errors, wherein e₁=x₁(k+1)−z₁(k+1) and e₂=x₂(k+1)−z₂(k+1); a₁ and a₂ are two specific values of the exponential coefficient α of the fal function; b₀ is a coefficient determined empirically; K_(p) and K_(d) are a proportion coefficient and a differential coefficient, respectively, and need to be optimized; S404: saving, in .mdl format, a Simulink model of the angular displacement loop controller established through steps 401 to 403, to obtain an angular displacement loop controller model in .mdl format, wherein an input of the angular displacement loop controller model in .mdl format is parameters of the angular displacement loop controller model, and an output of the model is a feedback angular displacement of the step target angular displacement; the parameters of the angular displacement loop controller model comprise: a proportion coefficient K_(p), a differential coefficient K_(d), and a control volume coefficient b of an angular displacement loop; S405: establishing a PSO main function in Matlab, setting the number of particle dimensions to 2, the number of particles to 50, and the maximum number of iterations to 100, wherein an inertia weight of a particle velocity update formula decreases linearly from 0.9 to 0.4 to improve search efficiency and reduce a probability of falling into a local optimum; S406: defining a fitness function of the angular displacement loop controller as a weighted sum of an overshoot of the angular displacement loop controller and an absolute error value of the angular displacement loop controller, wherein an inertia weight of an overshoot item is 0.009, and an inertia weight of an absolute error value item is 1: y′ _(fit) =w′ ₁ ×δ′+∫w′ ₂ ×|e′|×dt   (31) wherein y′_(fit) is a fitness function value of the angular displacement loop controller, w′₁ is the weight of the overshoot item of the angular velocity loop controller, w′₂ is the weight of the absolute error value item of the angular velocity loop controller, δ′ is the overshoot of the angular velocity loop controller, and e′ is an error of the angular velocity loop controller; S407: calling the Simulink model based on a sim( ) command in each iteration, to calculate a fitness function value, update a particle velocity, and update a particle position; and performing iteration continuously till the maximum number of iterations, to obtain optimal solutions of K_(p), K_(d), and b. 